#include <iostream>
#include <stack>
#include <vector>
using namespace std;

class Solution
{
public:
    int evalRPN(vector<string>& tokens)
    {
        std::stack<int> st;

        for(int i=0; i<tokens.size(); i++)
        {
            string& str = tokens[i];

            if(!(str=="+" || str=="-" || str=="*" || str=="/"))
            {
                st.push(atoi(str.c_str()));
            }
            else
            {
                int right = st.top();
                st.pop();
                int left = st.top();
                st.pop();

                switch(str[0])
                {
                case '+':
                    st.push(left+right);
                    break;
                case '-':
                    st.push(left-right);
                    break;
                case '*':
                    st.push(left*right);
                    break;
                case '/':
                    st.push(left/right);
                    break;
                }
            }
        }

        return st.top();
    }
};
